<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8" />
  <title>opencpn:opencpn_user_manual:advanced_features:opengl</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="opencpn,opencpn_user_manual,advanced_features,opengl"/>
<link rel="search" type="application/opensearchdescription+xml" href="../lib/exe/opensearch.html" title="OpenCPN Manuals"/>
<link rel="start" href="opengl.html"/>
<link rel="contents" href="opengl.html" title="Sitemap"/>
<link rel="alternate" type="application/rss+xml" title="Recent Changes" />
<link rel="alternate" type="application/rss+xml" title="Current namespace" />
<link rel="alternate" type="text/html" title="Plain HTML" href="opengl.html"/>
<link rel="alternate" type="text/plain" title="Wiki Markup" href="opengl.html"/>
<link rel="canonical" href="http://localhost/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:advanced_features:opengl"/>
<link rel="stylesheet" type="text/css" href="../lib/exe/css.php.t.bootstrap3.css"/>
<!--[if gte IE 9]><!-->
<script type="text/javascript">/*<![CDATA[*/var NS='opencpn:opencpn_user_manual:advanced_features';var JSINFO = {"id":"opencpn:opencpn_user_manual:advanced_features:opengl","namespace":"opencpn:opencpn_user_manual:advanced_features","confirm_delete":"Are you sure you want to delete this page?","doku_base":"\/dokuwiki\/","cg_rev":"","dw_version":49.5,"chrome_version":0,"hide_captcha_error":"none","ckg_dbl_click":"","ckg_canonical":0,"has_wrap":"Wrap","wrapDiv":"WRAP","wrapSpan":"wrap","ckgEdPaste":"off","rel_links":0,"isadmin":0,"isauth":0,"move_renameokay":false,"schemes":["http","https","telnet","gopher","wais","ftp","ed2k","irc","ldap"],"htmlok":0};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="../lib/exe/jquery.php.t.bootstrap3.js"></script>
<script type="text/javascript" charset="utf-8" src="../lib/exe/js.php.t.bootstrap3.js"></script>
<!--<![endif]-->

    <script type="text/javascript">
    //<![CDATA[ 
    function LoadScript( url )
    {
     document.write( '<scr' + 'ipt type="text/javascript" src="..//url"><\/scr' + 'ipt>' ) ;        

    }
   function LoadScriptDefer( url )
    {
     document.write( '<scr' + 'ipt type="text/javascript" src="..//url" defer><\/scr' + 'ipt>' ) ;        

    }
//]]> 

 </script>
</head>
<body>
<div class="dokuwiki export">



<h1 class="sectionedit1" id="opengl">OpenGL</h1>
<div class="level1">

</div>
<!-- EDIT1 SECTION "OpenGL" [20-41] -->
<h3 class="sectionedit2" id="what_is_opengl_an_overview">What is OpenGL?  An Overview</h3>
<div class="level3">

<p>
OpenGL is an open standard, cross platform, advanced graphic library. It uses the graphic cards processor (GPU) and memory, to speed up applications. With OpenCPN a user with a typical modern graphic card will have an enhanced experience. Much faster and smoother zooming and panning as well as clearer and sharper chart rendering.
</p>

<p>
In OpenCPN, OpenGL is a choice; however. the old graphic engine is still there. OpenGL will not work for everyone. Performance may not be improved with embedded graphics chips, often found in older laptops and netbooks.
</p>

<p>
Microsoft has gone from <em>support</em> to <em>hostility</em> towards OpenGL. There is currently a lot of trouble in Windows for all OpenGL applications, not just OpenCPN. OpenCPN has been forced to disable a handful of OpenGL features for all <em>Intel OpenGL graphics drivers on Windows</em>, for example.
</p>

<p>
Mac <abbr title="Operating System">OS</abbr> X has full supports for OpenGL. 
</p>

<p>
For Linux the situation is slightly different. Linux supports OpenGL, as it generally tends to support open standards. The user is however dependent on a driver from the graphic cards maker, and their support for OpenGL. This may change with projects like <a href="http://nouveau.freedesktop.org/wiki/" class="urlextern" title="http://nouveau.freedesktop.org/wiki/" rel="nofollow">nouveau</a>, a free driver for nVidias cards.
</p>

<p>
<img src="../opencpn/manual/nogl.h.167_tok.e9efce_w.200.jpg" class="media" alt="" width="200" height="167" />…
<img src="../opencpn/manual/gl.h.172_tok.554a05_w.200.jpg" class="media" alt="" width="200" height="172" />
</p>

<p>
Without OpenGL         and               With OpenGL
</p>

<p>
Heavy over zooming reveals some of the secrets behind OpenGL
</p>

</div>
<!-- EDIT2 SECTION "What is OpenGL?  An Overview" [42-1517] -->
<h3 class="sectionedit3" id="why_introduce_opengl_in_opencpn">Why introduce OpenGL in OpenCPN?</h3>
<div class="level3">

<p>
The main reasons are:
</p>
<ul>
<li class="level1"><div class="li"> Better performance, leveraging modern PC graphics cards that are ubiquitous and powerful.</div>
</li>
<li class="level1"><div class="li"> Better “eye candy”, such as smooth zoom and pan, with little impact on responsiveness.</div>
</li>
<li class="level1"><div class="li"> Future cross-platform support (e.g Android/IOS)</div>
</li>
<li class="level1"><div class="li"> Some features depends on OpenGL, such as horizontal text and numbers on skewed (course up) vectorcharts.</div>
</li>
</ul>

</div>
<!-- EDIT3 SECTION "Why introduce OpenGL in OpenCPN?" [1518-1931] -->
<h3 class="sectionedit4" id="is_opengl_a_good_choice_for_everyone">Is OpenGL a good choice for everyone?</h3>
<div class="level3">

<p>
OpenCPNs performance with OpenGL is highly dependent upon your graphics hardware and drivers.
</p>
<ul>
<li class="level1"><div class="li"> On some systems using Intel HD Graphics adapters, especially running 64bit editions of Windows 7, OpenCPN gets killed due to errors in the display adapter drivers. You may try to get updated drivers or as a workaround, on Windows run <strong>OpenCPN - no OpenGL</strong>  from <em>Start</em>  menu. On all the platforms, you can use the <strong>-no_opengl</strong> <a href="command_line.html" class="wikilink1" title="opencpn:opencpn_user_manual:advanced_features:command_line">Command Line</a> switch while starting the program to run it with OpenGL disabled.</div>
</li>
<li class="level1"><div class="li"> Some graphics chip sets (e.g.intel 945G) have rather poor OpenGL driver support, so that we cannot fully utilize the hardware acceleration potential of these systems.</div>
</li>
<li class="level1"><div class="li"> nVidia graphics, even very old cards, seem to perform very well.</div>
</li>
<li class="level1"><div class="li"> Performance may not be improved with embedded graphics chips as often found in older laptops and netbooks.</div>
</li>
<li class="level1"><div class="li"> There is a lot of trouble with OpenGL on Vista and W7. Microsoft implemented a new screen compositing model for Vista and later, which “broke” many OpenGL apps</div>
</li>
<li class="level1"><div class="li"> Conclusion:Using OpenGL with OpenCPN will be a significant upgrade for some users of OpenCPN, but OpenGL may not be “better” for everyone&#039;s OCPN application.</div>
</li>
<li class="level1"><div class="li"> So, user&#039;s choice. If OpenGL works better for you, then use it. If not, the old DC based graphics render system is still in place.</div>
</li>
</ul>

<p>
<strong>Start using OpenGL</strong>
</p>
<ul>
<li class="level1"><div class="li"> Find the latest driver for your graphic card. The driver that came with your operating system, is not likely to be the best. Start looking at your graphic card makers home page.</div>
</li>
<li class="level1"><div class="li"> Go to the <em>ToolBox→Settings</em>  and tick the two boxes <em>“Use Accelerated Graphics(OpenGL)”</em>  and <em>“Enable Smooth Panning/Zooming”</em>. Read all the details in the <a href="../options_setting/display.html" class="wikilink1" title="opencpn:opencpn_user_manual:options_setting:display">Options Setting &gt; Display Tab.</a></div>
</li>
</ul>

</div>
<!-- EDIT4 SECTION "Is OpenGL a good choice for everyone?" [1932-3822] -->
<h3 class="sectionedit5" id="other_tricks">Other tricks</h3>
<div class="level3">

<p>
If you have a lot of graphic memory, or very little, try to add the following to your config (.ini on windows) file: 
</p>
<pre class="code">  [Settings] ....
  GPUMemorySize=nnn</pre>

<p>
where nnn is graphics card memory size, in MBytes. 256 MBytes is the default.
</p>

</div>
<!-- EDIT5 SECTION "Other tricks" [3823-4098] -->
<h3 class="sectionedit6" id="supplementary_software_to_test_graphics_adapter_opengl_compatibility">Supplementary Software to test Graphics Adapter Opengl compatibility</h3>
<div class="level3">

<p>
Troubles in OpenGL mode?**
</p>
<ul>
<li class="level1"><div class="li"> Make sure the proper updated drivers for your graphics card.</div>
</li>
<li class="level1"><div class="li"> Earlier Intel HP Graphics, chips do not offer full OpenGL support. This is where the opengl issues tend to occur.</div>
</li>
<li class="level1"><div class="li"> One good option is to get a newer graphics board that supports OpenGL fully. (I would suggest Nvidia, but there will be various opions about that.)</div>
</li>
<li class="level1"><div class="li"> Another option is to try adjusting the OpenCPN OpenGL settings, unchecking all the advanced features and testing.</div>
</li>
<li class="level1"><div class="li"> Then if there are still difficulties, running this software may show exactly what the problem is.</div>
</li>
</ul>

<p>
This free adapter testing software is for various operating systems, including Windows 32bit and 64bit.
</p>

<p>
GLview: <a href="http://www.realtech-vr.com/glview/" class="urlextern" title="http://www.realtech-vr.com/glview/" rel="nofollow">OpenGL Extensions Viewer</a> <a href="http://www.realtech-vr.com/glview/" class="urlextern" title="http://www.realtech-vr.com/glview/" rel="nofollow">http://www.realtech-vr.com/glview/</a>
</p>

<p>
This software tool tests your graphics card capabilities and makes a report log. It is useful in tracking down particular problems with OpenGL on a given system. The Developers can then help determine what is wrong. 
</p>

<p>
However when other software like GoogleEarth works OK with OpenGL on,  then there are possibly other reasons why OpenCPN fails, related to the Opencpn OpenGL implimentation. There are many, many graphics cards and they have differing capabilities and sometimes the Opencpn opengl implimentation has to be adjusted for a particular card.
</p>

</div>
<!-- EDIT6 SECTION "Supplementary Software to test Graphics Adapter Opengl compatibility" [4099-] -->
<!-- no cachefile used, but created /var/www/html/dokuwiki/data/cache/0/08eb66673fc4d2059c0d0582ed75a9d3.xhtml -->
</div>
</body>
</html>
